package czx.wt.util.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author JokerJodas
 */
public class DateUitl {
    /**
     * 时间转字符串
     *
     * @param date
     * @return
     */
    public static String date2Str(Date date) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            return simpleDateFormat.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取今日日期19900313的形式
     *
     * @return boolean
     */
    public static String getToday() {
        long now = System.currentTimeMillis();
        Date d = new Date(now);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        return sdf.format(d);
    }

    /**
     * 返回minutes分钟间隔后的时间
     *
     * @param minutes 时间间隔，正数是minutes之后，负数是minutes之前
     * @return
     */
    public static Date getIntervalMinutes(int minutes) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar beforeTime = Calendar.getInstance();
        beforeTime.add(Calendar.MINUTE, minutes);// minutes分钟之前的时间
        return beforeTime.getTime();
    }

    /**
     * 返回hours分钟间隔后的时间
     *
     * @param hours 时间间隔，正数是hours之后，负数是hours之前
     * @return
     */

    public static Date getIntervalHour(int hours) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar beforeTime = Calendar.getInstance();
        beforeTime.add(Calendar.HOUR, hours);// 3分钟之前的时间
        return beforeTime.getTime();
    }

    /**
     * 字符串转时间
     *
     * @param dateStr
     * @return
     */
    public static Date str2Date(String dateStr) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            return simpleDateFormat.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 字符串转时间
     * @param dateStr
     * @return
     */
    public static Date strToDate(String dateStr){
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            return simpleDateFormat.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 将时间戳转化成1990-03-23的形式
     *
     * @param time
     * @return boolean
     */
    public static String turnDate(long time) {
        Date d = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(d);
    }

    /**
     * 将时间戳转化成1990-03-23 22:22:22的形式
     *
     * @param time
     * @return boolean
     */
    public static String turnLongDate(long time) {
        Date d = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(d);
    }
    /**
     * 将时间戳转化成2018的形式
     *
     * @param time
     * @return boolean
     */
    public static String turnLong2YearDate(long time) {
        Date d = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        return sdf.format(d);
    }

}
